home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / modules / nessus-2.2.8.mo / usr / lib / nessus / plugins / icecast_disclosure.nasl < prev    next >
Text File  |  2005-01-14  |  2KB  |  79 lines

  1. #
  2. # This script was written by Renaud Deraison <deraison@cvs.nessus.org>
  3. #
  4. # Script audit and contributions from Carmichael Security <http://www.carmichaelsecurity.com>
  5. #      Erik Anderson <eanders@carmichaelsecurity.com>
  6. #      Added BugtraqID
  7. #
  8. # See the Nessus Scripts License for details
  9. #
  10.  
  11. if(description)
  12. {
  13.  script_id(11044);
  14.  script_bugtraq_id(5189);
  15.  script_version ("$Revision: 1.8 $");
  16.  
  17.  name["english"] = "ICECast FileSystem disclosure";
  18.  script_name(english:name["english"]);
  19.  
  20.  desc["english"] = "
  21. The remote server does not return the same error codes when it is requested
  22. a non-existent directory and an existing one. An attacker may use this flaw
  23. to deduct the presence of several key directory on the remote server, and
  24. therefore gain further knowledge about it.
  25.  
  26. Risk factor : Low
  27. Solution : None";
  28.  
  29.  
  30.  script_description(english:desc["english"]);
  31.  
  32.  summary["english"] = "Determines if the error code is the same when requesting inexisting and existing dirs";
  33.  
  34.  script_summary(english:summary["english"]);
  35.  
  36.  script_category(ACT_ATTACK);
  37.  
  38.  
  39.  script_copyright(english:"This script is Copyright (C) 2002 Renaud Deraison",
  40.         francais:"Ce script est Copyright (C) 2002 Renaud Deraison");
  41.  family["english"] = "CGI abuses";
  42.  family["francais"] = "Abus de CGI";
  43.  script_family(english:family["english"], francais:family["francais"]);
  44.  script_dependencie("find_service.nes", "no404.nasl");
  45.  script_require_ports("Services/www", 8000);
  46.  exit(0);
  47. }
  48.  
  49. #
  50. # The script code starts here
  51. #
  52.  
  53.  
  54.  
  55. include("http_func.inc");
  56.  
  57. port = get_kb_item("Services/www");
  58. if(!port)port = 8000;
  59.  
  60. if(!get_port_state(port))exit(0);
  61.  
  62. req1 = http_get(port:port, item:"/test/../../../../../../../../../inexistant_i_hope/");
  63. req2 = http_get(port:port, item:"/test/../../../../../../../../../etc/");
  64.  
  65. soc1 = http_open_socket(port);
  66. if(!soc1)exit(0);
  67. send(socket:soc1, data:req1);
  68. r1 = recv_line(socket:soc1, length:13);
  69. http_close_socket(soc1);
  70.  
  71. soc2 = http_open_socket(port);
  72. if(!soc2)exit(0);
  73. send(socket:soc2, data:req2);
  74. r2 = recv_line(socket:soc2, length:13);
  75. http_close_socket(soc2);
  76.  
  77. if(!(r2 == r1))security_warning(port);
  78.  
  79.